iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0

計算屬性的賦值

  • 儲存屬性的主要作用是資料的存取,我們可以使用賦值運算進行屬性值的修改。通常計算屬性只用來設定值,不會用來存值,因此計算屬性預設提供的是設定值的方法,也就是get方法。
  • 但事實上計算屬性也可透過賦值進行存資料的操作,存資料的方法需手動實現,也就是set方法。
  • 以昨天的程式為基礎修改,type計算屬性如下:
computed: {
    type: {
        get() {
            return this.count > 10 ? "大" : "小"
        },
        set(newValue) {
            if (newValue == "大") {
                this.count = 11
            }else {
                this.count = 0
            }
        }
    }
}
  • 可以直接使用元件實例進行計算屬性type的賦值,賦值時會呼叫我們所定義的set方法,從而實現對儲存屬性count的修改:
let instance = Vue.createApp(App).mount("#Application")  //初始值為0
console.log(instance.count)  //初始狀態為「小」
console.log(instance.type)   //對計算屬性進行修改
instance.type = "大"
console.log(instance.count)
  • 如程式所示,計算屬性對使用方式透明的,我們無須關心某個屬性是不是計算屬性,按照普通屬性的方式進行即可。
  • 但需要注意,若一個計算屬性只實現get方法,而未實現set方法,則在使用時,只可設定值,不可賦值。
  • 在Vue中,只實現了get方法的計算屬性,稱為「唯獨屬性」。

屬性偵聽器

  • 屬性偵聽器可以監聽某屬性的變化以完成複雜的業務邏輯。
  • 在定義Vue元件時,可透過watch選項定義屬性偵聽器。
    https://ithelp.ithome.com.tw/upload/images/20241008/20169282YcrK330ZRT.png
  • 在這段程式中,若在頁面上的輸入匡中輸入的字串超過10個,會彈出警告視窗提示所輸入的文字太長。
    https://ithelp.ithome.com.tw/upload/images/20241008/20169282ZDR65VTrQV.png

今天介紹的內容就先到這邊,明天將會介紹的是函數限流!


上一篇
Day 24
下一篇
Day 26
系列文
從零開始學習TypeScript、Vue.js !!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言